package com.demo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.demo.pojo.entity.Student;
import com.demo.pojo.dto.StudentListDTO;

import java.util.List;

/**
 * 学生服务接口
 */
public interface StudentService {
    
    /**
     * 分页查询学生列表（多条件）
     * @param page 分页参数
     * @param stuNo 学号（可选）
     * @param stuName 姓名（可选）
     * @param stuSex 性别（可选）
     * @param stuPhone 手机（可选）
     * @return 分页结果
     */
    IPage<StudentListDTO> getStudentList(Page<Student> page, Long stuNo, String stuName, Integer stuSex, String stuPhone);
    
    /**
     * 根据ID查询学生
     * @param id 学生ID
     * @return 学生信息
     */
    Student getStudentById(Integer id);
    
    /**
     * 根据学号查询学生
     * @param stuNo 学号
     * @return 学生信息
     */
    Student getStudentByNo(Long stuNo);
    
    /**
     * 添加学生
     * @param student 学生信息
     * @return 是否成功
     */
    boolean addStudent(Student student);
    
    /**
     * 更新学生信息
     * @param student 学生信息
     * @return 是否成功
     */
    boolean updateStudent(Student student);
    
    /**
     * 删除学生
     * @param id 学生ID
     * @return 是否成功
     */
    boolean deleteStudent(Integer id);
    
    /**
     * 批量删除学生
     * @param ids 学生ID列表
     * @return 是否成功
     */
    boolean deleteStudents(List<Integer> ids);

    /**
     * 学生登录（学号 + 身份证后六位）
     */
    Student login(Long stuNo, String idTail6);
}
